home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- #
- # ECI Linux driver configuration script.
- # Same goal as eciconf.sh, but can be run in a terminal / console.
- #
- # Usage :
- # eciconftxt.sh <file.bin> change quickly .bin file to sync
- # without parameter : interactive mode for configuration
- #
- # Author : FlashCode <flashcode@flashtux.org>
- # Creation : 2002/10/06
- # Licence : GPL
- #
-
- # <CONFIG>
- BIN_DIR="/usr/local/bin"
- ETC_DIR="/etc"
- CONF_DIR="/etc/eciadsl/"
- PPPD_DIR="/etc/ppp"
- VERSION=""
- # </CONFIG>
-
- if [ "$1" == "--version" -o "$1" == "-v" ]; then
- echo "$VERSION"
- exit 0
- fi
-
- tmpbin=/tmp/binfile.tmp
- previous="Previous setting"
-
- if [ $UID -ne 0 ]; then
- echo -e "This script must be run as root.\nType in root password, please."
- su - -c "DISPLAY=$DISPLAY PATH=$PATH $0 $*"
- exit 1
- fi
-
- if [ -s "$CONF_DIR/eciadsl.conf" ]; then
- prev_vpi=`grep -E "^[ \t]*VPI[ \t]*=" "$CONF_DIR/eciadsl.conf" | tail -1 | cut -f 2 -d '=' | tr -d " \t"`
- prev_vci=`grep -E "^[ \t]*VCI[ \t]*=" "$CONF_DIR/eciadsl.conf" | tail -1 | cut -f 2 -d '=' | tr -d " \t"`
- prev_vid1=`grep -E "^[ \t]*VID1[ \t]*=" "$CONF_DIR/eciadsl.conf" | tail -1 | cut -f 2 -d '=' | tr -d " \t"`
- prev_pid1=`grep -E "^[ \t]*PID1[ \t]*=" "$CONF_DIR/eciadsl.conf" | tail -1 | cut -f 2 -d '=' | tr -d " \t"`
- prev_vid2=`grep -E "^[ \t]*VID2[ \t]*=" "$CONF_DIR/eciadsl.conf" | tail -1 | cut -f 2 -d '=' | tr -d " \t"`
- prev_pid2=`grep -E "^[ \t]*PID2[ \t]*=" "$CONF_DIR/eciadsl.conf" | tail -1 | cut -f 2 -d '=' | tr -d " \t"`
- prev_mode=`grep -E "^[ \t]*MODE[ \t]*=" "$CONF_DIR/eciadsl.conf" | tail -1 | cut -f 2 -d '=' | tr -d " \t"`
- prev_firmware=`grep -E "^[ \t]*FIRMWARE[ \t]*=" "$CONF_DIR/eciadsl.conf" | tail -1 | cut -f 2 -d '=' | tr -s "\t" " "`
- prev_synch=`grep -E "^[ \t]*SYNCH[ \t]*=" "$CONF_DIR/eciadsl.conf" | tail -1 | cut -f 2 -d '=' | tr -s "\t" " "`
- prev_staticip=`grep -E "^[ \t]*STATICIP[ \t]*=" "$CONF_DIR/eciadsl.conf" | tail -1 | cut -f 2 -d '=' | tr -d " \t"`
- prev_gateway=`grep -E "^[ \t]*GATEWAY[ \t]*=" "$CONF_DIR/eciadsl.conf" | tail -1 | cut -f 2 -d '=' | tr -d " \t"`
- prev_use_staticip=`grep -E "^[ \t]*USE_STATICIP[ \t]*=" "$CONF_DIR/eciadsl.conf" | tail -1 | cut -f 2 -d '=' | tr -d " \t"`
- prev_use_dhcp=`grep -E "^[ \t]*USE_DHCP[ \t]*=" "$CONF_DIR/eciadsl.conf" | tail -1 | cut -f 2 -d '=' | tr -d " \t"`
- prev_modem=`grep -E "^[ \t]*MODEM[ \t]*=" "$CONF_DIR/eciadsl.conf" | tail -1 | cut -f 2 -d '=' | tr -s "\t" " "`
- prev_provider=`grep -E "^[ \t]*PROVIDER[ \t]*=" "$CONF_DIR/eciadsl.conf" | tail -1 | cut -f 2 -d '=' | tr -s "\t" " "`
- prev_dns1=`grep -E "^[ \t]*DNS1[ \t]*=" "$CONF_DIR/eciadsl.conf" | tail -1 | cut -f 2 -d '=' | tr -s "\t" " "`
- prev_dns2=`grep -E "^[ \t]*DNS2[ \t]*=" "$CONF_DIR/eciadsl.conf" | tail -1 | cut -f 2 -d '=' | tr -s "\t" " "`
- prev_pppd_user=`grep -E "^[ \t]*PPPD_USER[ \t]*=" "$CONF_DIR/eciadsl.conf" | tail -1 | cut -f 2 -d '=' | tr -s "\t" " "`
- prev_pppd_passwd=`grep -E "^[ \t]*PPPD_PASSWD[ \t]*=" "$CONF_DIR/eciadsl.conf" | tail -1 | cut -f 2 -d '=' | tr -s "\t" " "`
- fi
-
- case "$1" in
- "@menu@")
- choice_ok=0
- echo $2 | grep -E "^[^|]+(\|[^|]+)*\|[^|]+$" > /dev/null 2>&1
- if [ $? -ne 0 ]; then
- echo -e "*** internal error: invalid menu\n$2"
- exit 255
- fi
- while [ $choice_ok -eq 0 ]; do
- item=$(echo $2 | cut -f 1 -d '|')
- echo -e "$item:\n"
- i=0
- fin=0
- possible="|"
- while [ $fin -eq 0 ]; do
- i=$(expr $i + 1)
- item=$(echo $2 | cut -f `expr $i + 1` -d '|')
- if [ -n "$item" ]; then
- echo "$i) $item"
- possible="$possible$i|"
- else
- fin=1
- fi
- done
- i=$(expr $i - 1)
- echo -en "\nEnter your choice (1-$i, default is 1): "
- read choice_menu
- if [ -z "$choice_menu" ]; then
- choice_menu=1
- fi
- echo $possible | grep "$choice_menu" > /dev/null 2>&1
- if [ $? -eq 0 ]; then
- choice_ok=1
- else
- echo -e "** Incorrect choice, try again\n"
- fi
- done
- exit $choice_menu
- ;;
-
- "@bin@")
- echo
- fichiers_bin=""
- for bin in $(find "$CONF_DIR" -name "*.bin" | grep -v "firmware"); do
- fichiers_bin="$fichiers_bin|$bin"
- done
- if [ -z "$fichiers_bin" ]; then
- echo "WARNING: no synch .bin file found in $CONF_DIR or subdirectories"
- echo "Please check your driver installation!"
- if [ -n "$prev_synch" ]; then
- echo "Previous selection kept"
- echo "$prev_synch" > $tmpbin
- exit 0
- else
- echo "** skipping synch .bin selection"
- :> $tmpbin
- exit 255
- fi
- fi
- if [ -n "$prev_synch" ]; then
- fichiers_bin="|$previous ($prev_synch)$fichiers_bin"
- fi
- fichiers_bin="Select your .bin file for synch$fichiers_bin"
- $0 @menu@ "$fichiers_bin"
- ret=$?
- test $ret -eq 255 && exit 255
- bin=$(expr $ret + 1)
- echo "$(echo $fichiers_bin | cut -f $bin -d '|')" > $tmpbin
- exit 0
- ;;
-
- "")
- menu1="Your choice|Configure all settings|Remove dabusb module|Change synch .bin file"
-
- if [ ! -d $CONF_DIR ]; then
- echo -e "*** config directory not found\n"
- exit 1
- fi
-
- OLDIFS="$IFS"
- IFS="
- "
- providers_db="$CONF_DIR/providers.db"
- providers="Select your provider"
- servers_dns1="*"
- servers_dns2="*"
- if [ -n "$prev_provider" -a -n "$prev_dns1" -o -n "$prev_dns2" ]; then
- test -z "$prev_dns1" && prev_dns1="?"
- test -z "$prev_dns2" && prev_dns2="?"
- # if the saved provider label is known but the saved DNS don't match,
- # assume Other and keep DNS
- dns1_="$(grep -v -E "^[ \t]*#" "$providers_db" | grep "$prev_provider" | tr -s "\t" "|" | cut -d '|' -f 2)"
- dns2_="$(grep -v -E "^[ \t]*#" "$providers_db" | grep "$prev_provider" | tr -s "\t" "|" | cut -d '|' -f 3)"
- if [ "$prev_provider" != "Other" -a "$dns1_" != "$prev_dns1" -o "$dns2_" != "$prev_dns2" ]; then
- prev_provider="Other"
- servers_dns1="$servers_dns1|$prev_dns1"
- servers_dns2="$servers_dns2|$prev_dns2"
- else
- servers_dns1="$servers_dns1|$dns1_"
- servers_dns2="$servers_dns2|$dns2_"
- fi
- providers="$providers|$previous ($prev_provider)"
- fi
- for LINE in $(grep -v -E "^[ \t]*#" "$providers_db" | tr -s "\t" "|" | cut -d '|' -f 1); do
- providers="$providers|$LINE"
- done
- for LINE in $(grep -v -E "^[ \t]*#" "$providers_db" | tr -s "\t" "|" | cut -d '|' -f 2); do
- servers_dns1="$servers_dns1|$LINE"
- done
- for LINE in $(grep -v -E "^[ \t]*#" "$providers_db"| tr -s "\t" "|" | cut -d '|' -f 3); do
- servers_dns2="$servers_dns2|$LINE"
- done
- providers="$providers|Other"
- servers_dns1="$servers_dns1|?"
- servers_dns2="$servers_dns2|?"
-
- modems_db="$CONF_DIR/modems.db"
- modems="Select your modem"
- vid1pid1="*"
- vid2pid2="*"
- if [ -n "$prev_modem" -a -n "$prev_vid1" -o -n "$prev_pid1" -o -n "$prev_vid2" -o -n "$prev_pid2" ]; then
- test -z "$prev_vid1" && prev_vid1="????"
- test -z "$prev_pid1" && prev_pid1="????"
- test -z "$prev_vid2" && prev_vid2="????"
- test -z "$prev_pid2" && prev_pid2="????"
- # if the saved modem label is known but the saved VIDPID don't match,
- # assume Other and keep VIDPID
- vid1_="$(grep -v -E "^[ \t]*#" "$modems_db" | grep "$prev_modem" | tr -s "\t" "|" | cut -d '|' -f 2)"
- pid1_="$(grep -v -E "^[ \t]*#" "$modems_db" | grep "$prev_modem" | tr -s "\t" "|" | cut -d '|' -f 3)"
- vid2_="$(grep -v -E "^[ \t]*#" "$modems_db" | grep "$prev_modem" | tr -s "\t" "|" | cut -d '|' -f 4)"
- pid2_="$(grep -v -E "^[ \t]*#" "$modems_db" | grep "$prev_modem" | tr -s "\t" "|" | cut -d '|' -f 5)"
- if [ "$prev_modem" != "Other" -a "$vid1_" != "$prev_vid1" -o "$pid1_" != "$prev_pid1" -o "$vid2_" != "$prev_vid2" -o "$pid2_" != "$prev_pid2" ]; then
- prev_modem="Other"
- vid1pid1="$vid1pid1|$prev_vid1$prev_pid1"
- vid2pid2="$vid2pid2|$prev_vid2$prev_pid2"
- else
- vid1pid1="$vid1pid1|$vid1_$pid1_"
- vid2pid2="$vid2pid2|$vid2_$pid2_"
- fi
- modems="$modems|$previous ($prev_modem)"
- fi
- for LINE in $(grep -v -E "^[ \t]*#" "$modems_db" | tr -s "\t" "|" | cut -d "|" -f 1); do
- modems="$modems|$LINE"
- done
- for LINE in $(grep -v -E "^[ \t]*#" "$modems_db" | tr -s "\t" "|" | cut -d "|" -f 2-3 | tr -d "| "); do
- vid1pid1="$vid1pid1|$LINE"
- done
- for LINE in $(grep -v -E "^[ \t]*#" "$modems_db" | tr -s "\t" "|" | cut -d "|" -f 4-5 | tr -d "| "); do
- vid2pid2="$vid2pid2|$LINE"
- done
- IFS="$OLDIFS"
- modems="$modems|Other"
- vid1pid1="$vid1pid1|????????"
- vid2pid2="$vid2pid2|????????"
-
- echo -e "\n===== Welcome to the Eci Adsl Linux driver configuration =====\n"
- echo -e "At any time, press Ctrl+C to quit this script without saving modifications.\n"
- echo -e "Tip: you can run eciconftxt.sh with a .bin file as parameter to change\nyour .bin quickly.\n"
-
- $0 @menu@ "$menu1"
- ret=$?
- test $ret -eq 255 && exit 1
- config=$ret
-
- ### Global Eci Adsl configuration ###
-
- if [ $config -eq 1 ]; then
- echo -e "\n===> Eci Adsl driver setup <===\n"
-
- user=""
- while [ -z "$user" ]; do
- if [ -n "$prev_pppd_user" ]; then
- echo "Current user name is: $prev_pppd_user"
- TMP=", press ENTER to keep the previous one"
- else
- TMP=""
- fi
- echo -n "Type in your user name (given by your provider$TMP): "
- read user
- if [ -z "$user" -a -n "$prev_pppd_user" ]; then
- user="$prev_pppd_user"
- echo "* user name unchanged"
- fi
- done
-
- echo
- pwdmatch=0
- while [ $pwdmatch -eq 0 ]; do
- if [ -n "$prev_pppd_passwd" ]; then
- echo "Current password is: $prev_pppd_passwd"
- TMP=", press ENTER to keep the previous one"
- else
- TMP=""
- fi
- stty -echo
- password1=""
- while [ -z "$password1" ]; do
- echo -n "Type in your password (given by your provider$TMP): "
- read password1
- echo
- if [ -z "$password1" -a -n "$prev_pppd_passwd" ]; then
- password1="$prev_pppd_passwd"
- echo "* password unchanged"
- fi
- done
- if [ "$password1" == "$prev_pppd_passwd" ]; then
- password2="$password1"
- else
- password2=""
- while [ -z "$password2" ]; do
- echo -n "Type in your password again (for verification$TMP): "
- read password2
- echo
- done
- fi
- stty echo
- if [ "$password1" == "$password2" ]; then
- pwdmatch=1
- else
- echo -e "** passwords don't match, try again\n"
- fi
- done
-
- echo
- $0 @menu@ "$providers"
- ret=$?
- test $ret -eq 255 && exit 1
- provider=$(expr $ret + 1)
- dns1="$(echo $servers_dns1 | cut -f $provider -d '|')"
- dns2="$(echo $servers_dns2 | cut -f $provider -d '|')"
-
- echo
- echo "If your provider was not listed (or if you want to overwrite"
- echo "defaults), you can type in your own DNS servers:"
- echo
-
- echo -n "DNS1 currently "
- if [ "$dns1" == "?" ]; then
- echo "unset"
- TMP="skip"
- else
- echo "set to $dns1"
- TMP="keep current value"
- fi
- i_dns1=""
- while [ -z "$i_dns1" ]; do
- echo -n "Type in an IP for DNS1 (press ENTER to $TMP): "
- read i_dns1
- if [ -z "$i_dns1" ]; then
- if [ "$dns1" == "?" ]; then
- dns1=""
- else
- echo "* DNS1 unchanged"
- fi
- break
- else
- echo $i_dns1 | grep -E "^([0-9]{1,3}\.){3}[0-9]{1,3}$" > /dev/null 2>&1
- if [ $? -ne 0 ]; then
- i_dns1=""
- echo -e "** invalid IP for DNS1, please retry\n"
- else
- if [ "$i_dns1" != "$dns1" ]; then
- provider="Other"
- dns1="$i_dns1"
- fi
- fi
- fi
- done
-
- echo
- i_dns2=""
- echo -n "DNS2 currently "
- if [ "$dns2" == "?" ]; then
- echo "unset"
- TMP="skip"
- else
- echo "set to $dns2"
- TMP="keep current value"
- fi
- while [ -z "$i_dns2" ]; do
- echo -n "Type in an IP for DNS2 (press ENTER to $TMP): "
- read i_dns2
- if [ -z "$i_dns2" ]; then
- if [ "$dns2" == "?" ]; then
- dns2=""
- else
- echo "* DNS2 unchanged"
- fi
- break
- else
- echo $i_dns2 | grep -E "^([0-9]{1,3}\.){3}[0-9]{1,3}$" > /dev/null 2>&1
- if [ $? -ne 0 ]; then
- i_dns2=""
- echo -e "** invalid IP for DNS2, please retry\n"
- else
- if [ "$i_dns2" != "$dns2" ]; then
- provider="Other"
- dns2="$i_dns2"
- fi
- fi
- fi
- done
-
- echo
- echo "Enter now your VPI/VCI (depending on your provider/country)"
- echo "Example for France: 8 35 (VPI=8, VCI=35)"
- echo "These values correspond to the number dialed under Windows."
- echo
- echo -n "VPI currently "
- if [ -z "$prev_vpi" ]; then
- echo "unset"
- TMP=""
- else
- echo "set to $prev_vpi"
- TMP=", press ENTER to keep the previous one"
- fi
- vpi=""
- while [ -z "$vpi" ]; do
- echo -n "Type in your VPI (given by your provider$TMP): "
- read vpi
- if [ -n "$prev_vpi" -a -z "$vpi" ]; then
- vpi="$prev_vpi"
- echo "* VPI unchanged"
- else
- echo $vpi | grep -E "^[0-9]+$" > /dev/null 2>&1
- if [ $? -ne 0 ]; then
- vpi=""
- echo -e "** invalid VPI, please enter it again\n"
- else
- if [ $vpi -ge 4096 ]; then
- vpi=""
- echo -e "** VPI not in range [0-4095], please enter it again\n"
- fi
- fi
- fi
- done
- echo
- echo -n "VCI currently "
- if [ -z "$prev_vci" ]; then
- echo "unset"
- TMP=""
- else
- echo "set to $prev_vci"
- TMP=", press ENTER to keep the previous one"
- fi
- vci=""
- while [ -z "$vci" ]; do
- echo -n "Type in your VCI (given by your provider$TMP): "
- read vci
- if [ -n "$prev_vci" -a -z "$vci" ]; then
- vci="$prev_vci"
- echo "* VCI unchanged"
- else
- echo $vci | grep -E "^[0-9]+$" > /dev/null 2>&1
- if [ $? -ne 0 ]; then
- vci=""
- echo -e "** invalid VCI, please enter it again\n"
- else
- if [ $vci -ge 65536 ]; then
- vci=""
- echo -e "** VCI not in range [0-65535], please enter it again\n"
- fi
- fi
- fi
- done
-
- echo
- $0 @menu@ "$modems"
- ret=$?
- test $ret -eq 255 && exit 1
- modem=$(expr $ret + 1)
- vid1="$(echo $vid1pid1 | cut -f $modem -d '|' | cut -c 1-4)"
- pid1="$(echo $vid1pid1 | cut -f $modem -d '|' | cut -c 5-8)"
- vid2="$(echo $vid2pid2 | cut -f $modem -d '|' | cut -c 1-4)"
- pid2="$(echo $vid2pid2 | cut -f $modem -d '|' | cut -c 5-8)"
-
- echo
- echo "If your modem was not listed (or if you want to overwrite defaults),"
- echo "you can enter your own VID1/PID1/VID2/PID2 (use probe_device.sh to"
- echo "get them):"
-
- echo
- echo -n "VID1 currently "
- if [ "$vid1" == "????" ]; then
- echo "unset"
- TMP=""
- else
- echo "set to $vid1"
- TMP=", press ENTER to keep current value"
- fi
- i_vid1=""
- while [ -z "$i_vid1" ]; do
- echo -n "Type in a VID1 (4-digit hexadecimal$TMP): "
- read i_vid1
- if [ -z "$i_vid1" ]; then
- if [ "$vid1" != "????" ]; then
- echo "* VID1 unchanged"
- break
- else
- echo -e "** VID1 still unset, please enter a value\n"
- fi
- else
- echo $i_vid1 | grep -E "^([0-9A-Fa-f]{4})$" > /dev/null 2>&1
- if [ $? -eq 0 ]; then
- vid1="$i_vid1"
- else
- i_vid1=""
- echo -e "** invalid VID1, please enter it again\n"
- fi
- fi
- done
-
- echo
- echo -n "PID1 currently "
- if [ "$pid1" == "????" ]; then
- echo "unset"
- TMP=""
- else
- echo "set to $pid1"
- TMP=", press ENTER to keep current value"
- fi
- i_pid1=""
- while [ -z "$i_pid1" ]; do
- echo -n "Type in a PID1 (4-digit hexadecimal$TMP): "
- read i_pid1
- if [ -z "$i_pid1" ]; then
- if [ "$pid1" != "????" ]; then
- echo "* PID1 unchanged"
- break
- else
- echo -e "** PID1 still unset, please enter a value\n"
- fi
- else
- echo $i_pid1 | grep -E "^([0-9A-Fa-f]{4})$" > /dev/null 2>&1
- if [ $? -eq 0 ]; then
- pid1="$i_pid1"
- else
- i_pid1=""
- echo -e "** invalid PID1, please enter it again\n"
- fi
- fi
- done
-
- echo
- echo -n "VID2 currently "
- if [ "$vid2" == "????" ]; then
- echo "unset"
- TMP=""
- else
- echo "set to $vid2"
- TMP=", press ENTER to keep current value"
- fi
- i_vid2=""
- while [ -z "$i_vid2" ]; do
- echo -n "Type in a VID2 (4-digit hexadecimal$TMP): "
- read i_vid2
- if [ -z "$i_vid2" ]; then
- if [ "$vid2" != "????" ]; then
- echo "* VID2 unchanged"
- break
- else
- echo -e "** VID2 still unset, please enter a value\n"
- fi
- else
- echo $i_vid2 | grep -E "^([0-9A-Fa-f]{4})$" > /dev/null 2>&1
- if [ $? -eq 0 ]; then
- vid2="$i_vid2"
- else
- i_vid2=""
- echo -e "** invalid VID2, please enter it again\n"
- fi
- fi
- done
-
- echo
- echo -n "PID2 currently "
- if [ "$pid2" == "????" ]; then
- echo "unset"
- TMP=""
- else
- echo "set to $pid2"
- TMP=", press ENTER to keep current value"
- fi
- i_pid2=""
- while [ -z "$i_pid2" ]; do
- echo -n "Type in a PID2 (4-digit hexadecimal$TMP): "
- read i_pid2
- if [ -z "$i_pid2" ]; then
- if [ "$pid2" != "????" ]; then
- echo "* PID2 unchanged"
- break
- else
- echo -e "** PID2 still unset, please enter a value\n"
- fi
- else
- echo $i_pid2 | grep -E "^([0-9A-Fa-f]{4})$" > /dev/null 2>&1
- if [ $? -eq 0 ]; then
- pid2="$i_pid2"
- else
- i_pid2=""
- echo -e "** invalid PID2, please enter it again\n"
- fi
- fi
- done
-
- $0 @bin@
- ret=$?
- binfile=$(cat $tmpbin)
- rm -rf $tmpbin > /dev/null
-
- OLDIFS="$IFS"
- IFS="
- "
- modes="Select your PPP mode (use the DEFAULT one if you don't know what this means)"
- if [ -n "$prev_mode" ]; then
- modes="$modes|$previous ($prev_mode)"
- fi
- for LINE in $($BIN_DIR/pppoeci --modes 2>&1 | cut -d ' ' -f 1); do
- modes="$modes|$LINE"
- done
- modes="$modes"
- IFS="$OLDIFS"
- $0 @menu@ "$modes"
- ret=$?
- test $ret -eq 255 && exit 1
- mode=$(expr $ret + 1)
-
- echo
- if [ -n "$prev_use_dhcp" ]; then
- echo -n "In current config, DHCP is "
- if [ "$prev_use_dhcp" == "yes" ]; then
- echo "enabled"
- else
- echo "disabled"
- fi
- TMP=" or press ENTER to keep current value"
- else
- TMP=""
- fi
- echo "Is DHCP used by your provider (MOST users should say NO)? "
- use_dhcp=""
- while [ -z "$use_dhcp" ]; do
- echo -n "(y/n$TMP) "
- read use_dhcp
- case "$use_dhcp" in
- y*|Y*) use_dhcp="yes"
- ;;
- n*|N*) use_dhcp="no"
- ;;
- "") if [ -n "$prev_use_dhcp" ]; then
- use_dhcp="$prev_use_dhcp"
- echo "* DHCP usage unchanged"
- else
- use_dhcp="no"
- fi
- ;;
- *) use_dhcp=""
- echo -e "** invalid answer, try again\n"
- ;;
- esac
- done
-
- if [ "$use_dhcp" != "yes" ]; then
- echo
- if [ -n "$prev_use_staticip" ]; then
- echo -n "In current config, static IP is "
- if [ "$prev_use_staticip" == "yes" ]; then
- echo "used"
- TMP=" or press ENTER to keep current setting"
- else
- echo "not used"
- TMP=""
- fi
- else
- TMP=""
- fi
- echo "Did you get a static IP from your provider (MOST users should say NO)? "
- use_staticip=""
- while [ -z "$use_staticip" ]; do
- echo -n "(y/n$TMP) "
- read use_staticip
- case "$use_staticip" in
- y*|Y*) use_staticip="yes"
- ;;
- n*|N*) use_staticip="no"
- ;;
- "") if [ -n "$prev_use_staticip" ]; then
- use_staticip="$prev_use_staticip"
- echo "* static IP usage unchanged"
- else
- use_staticip="no"
- fi
- ;;
- *) use_staticip=""
- echo -e "** invalid answer, try again\n"
- ;;
- esac
- done
-
- if [ "$use_staticip" == "yes" ]; then
- if [ -n "$prev_staticip" ]; then
- TMP=" (press ENTER to use $prev_staticip)"
- else
- TMP=""
- fi
- echo
- echo -n "Type in your static IP$TMP: "
- staticip=""
- while [ -z "$staticip" ]; do
- read staticip
- case "$staticip" in
- "") if [ -n "$prev_staticip" ]; then
- staticip="$prev_staticip"
- echo "* static IP unchanged"
- fi
- ;;
- *) echo "$staticip" | grep -E "^([0-9]{1,3}\.){3}[0-9]{1,3}$" > /dev/null 2>&1
- if [ $? -ne 0 ]; then
- staticip=""
- fi
- ;;
- esac
- test -z "$staticip" && echo -n "** invalid static IP, try again $TMP: "
- done
-
- if [ -n "$prev_gateway" ]; then
- TMP=" (press ENTER to use $prev_gateway)"
- else
- TMP=""
- fi
- echo
- echo -n "Type in your provider's gateway IP$TMP: "
- gateway=""
- while [ -z "$gateway" ]; do
- read gateway
- case "$gateway" in
- "") if [ -n "$gateway" ]; then
- gateway="$prev_gateway"
- echo "* gateway unchanged"
- fi
- ;;
- *) echo "$gateway" | grep -E "^([0-9]{1,3}\.){3}[0-9]{1,3}$" > /dev/null 2>&1
- if [ $? -ne 0 ]; then
- gateway=""
- fi
- ;;
- esac
- test -z "$gateway" && echo -n "** invalid gateway IP, try again $TMP: "
- done
- fi
- fi
-
- # extract values from lists
- mode="$(echo $modes | cut -f $mode -d '|')"
- modem="$(echo $modems | cut -f $modem -d '|')"
- test "$provider" != "Other" && provider="$(echo $providers | cut -f $provider -d '|')"
- # remove "previous ()" is necessary
- echo "$provider" | grep -E "^$previous \(.+\)$" > /dev/null 2>&1 && \
- provider=$(echo "$provider" | cut -d '(' -f 2 | cut -d ')' -f 1)
- echo "$modem" | grep -E "^$previous \(.+\)$" > /dev/null 2>&1 && \
- modem=$(echo "$modem" | cut -d '(' -f 2 | cut -d ')' -f 1)
- echo "$binfile" | grep -E "^$previous \(.+\)$" > /dev/null 2>&1 && \
- binfile=$(echo "$binfile" | cut -d '(' -f 2 | cut -d ')' -f 1)
- echo "$mode" | grep -E "^$previous \(.+\)$" > /dev/null 2>&1 && \
- mode=$(echo "$mode" | cut -d '(' -f 2 | cut -d ')' -f 1)
- echo
- echo "==== Configuration will be created with these values :"
- echo
- echo " + User : $user"
- echo " + Password : (hidden)"
- echo " + Provider : $provider"
- echo " DNS 1 : $dns1"
- echo " DNS 2 : $dns2"
- echo " + VPI/VCI : $vpi/$vci"
- echo " + Modem : $modem"
- echo " VID1/PID1 : $vid1/$pid1"
- echo " VID2/PID2 : $vid2/$pid2"
- echo " + .bin file : $binfile"
- echo " + PPP mode : $mode"
- echo " + use DHCP : $use_dhcp"
- echo " + use static IP : $use_dhcp"
- if [ "$use_staticip" == "yes" ]; then
- echo " static IP : $staticip"
- echo " gateway : $gateway"
- fi
- echo
- echo "Press ENTER to create config files or Ctrl+C to exit now without saving."
- read quitte
-
- $BIN_DIR/makeconfig "$mode" "$user" "$password1" "$BIN_DIR/pppoeci" "$dns1" "$dns2" \
- "$vpi" "$vci" "$vid1$pid1" "$vid2$pid2" "$binfile" "$firmware" \
- "$staticip" "$gateway" "$use_staticip" "$use_dhcp" "$modem" "$provider"
- if [ $? -eq 0 ]; then
- echo
- echo "==== eciconftxt.sh: Configuration updated with success !"
- echo "You can now run startmodem (as root) to connect to the internet."
- else
- echo "*** makeconfig reports error(s), please fix the problem and run eciconftxt.sh again."
- fi
- echo
- elif [ $config -eq 2 ]; then
- echo
- echo "Please unplug your modem and then press ENTER"
- read pause
- remove_dabusb
- echo
- else
- $0 @bin@
- ret=$?
- binfile=$(cat $tmpbin)
- rm -rf $tmpbin > /dev/null
- test $ret -eq 255 && exit 1
- echo
- $0 $binfile
- echo
- fi
- ;;
-
- *)
- # .bin change
- $BIN_DIR/makeconfig --synch "$1"
- exit $?
- ;;
- esac
- exit 0
-